<?php
namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Request;
use think\Session;

class Login extends Controller
{
    public function index(Request $request)
    {
        if (request()->isPost()) {
            $data = input('post.');
            //查询条件
            $map = [
                "user_name" => $data['username'],
            ];
            //检测用户存不存在
            $user = Db::table('ad_finance_user')->where($map)->find();
            //判断用户存不存在
            if (!$user['user_name']) {
                $this->error('该用户不存在');
            }

            //判断密码是否错误
            if ($user['user_pass'] != MD5(MD5($data['password']))) {
                $this->error('密码错误');
            }

            $se_name            = $user['user_name'];
            $finance_permission = $user['finance_permission'];

            //登录成功 把用户信息存入session
            session('se_name', $se_name);
            //把权限存进去
            Session::set('finance_permission', $finance_permission);
            //把id也存进去
            Session::set('auth_id', $user['id']);


            //超级管理员拥有所有权限 如果不是超级管理员 则进行相对应的权限限定
            if ($user['role_id'] == '*') {
                //如果是超级管理员 直接把权限存入session
                Session::set('url', '*');
            } else {
                //把用户的权限id拼接成sql语句到权限表去读取权限
                $map = [
                    'id' => array('in', $user['role_id']),
                ];

                //到权限表读取权限
                $pri_info = Db::table('ad_finance_node')->where($map)->select();

                $_pris = array();
                //把获取到的权限变成数组形式
                foreach ($pri_info as $k => $v) {
                    $_pris[] = $v['url'];
                }
                Session::set('url', $_pris);
            }


            return $this->success('登录成功!', url('Index/index'));

        } else {
            //如果用户账号存在 直接登录
            $user_account = $request->session('se_name');
            //判断是否存在 如果存在 直接跳转页面
            if ($user_account) {
                $this->redirect('Index/index');
            }
        }
        return $this->fetch();
    }

    public function loginout()
    {
        //销毁session
        Session::clear();
        //跳转链接
        $this->redirect('Login/index');
    }
}